{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from typing import Annotated\n",
    "from typing_extensions import TypedDict\n",
    "from langgraph.graph import StateGraph, START, END\n",
    "from operator import add\n",
    "\n",
    "\n",
    "class State(TypedDict):\n",
    "    foo: Annotated[list[str], add]\n",
    "\n",
    "\n",
    "def agent_m1(state):\n",
    "    return {\"foo\": [\"m1\"]}\n",
    "\n",
    "\n",
    "def agent_m2(state):\n",
    "    return {\"foo\": [\"m2\"]}\n",
    "\n",
    "\n",
    "def agent_l1(state):\n",
    "    return {\"foo\": [\"l1\"]}\n",
    "\n",
    "\n",
    "def agent_l2(state):\n",
    "    return {\"foo\": [\"l2\"]}\n",
    "\n",
    "\n",
    "def agent_r1(state):\n",
    "    return {\"foo\": [\"r1\"]}\n",
    "\n",
    "\n",
    "_sub_builder = StateGraph(State)\n",
    "_sub_builder.add_node(\"node_l1\", agent_l1)\n",
    "_sub_builder.add_node(\"node_l2\", agent_l2)\n",
    "_sub_builder.add_edge(START, \"node_l1\")\n",
    "_sub_builder.add_edge(\"node_l1\", \"node_l2\")\n",
    "_sub_builder.add_edge(\"node_l2\", END)\n",
    "\n",
    "_builder = StateGraph(State)\n",
    "_builder.add_node(\"node_m1\", agent_m1)\n",
    "_builder.add_node(\"node_m2\", agent_m2)\n",
    "_builder.add_node(\"node_r1\", agent_r1)\n",
    "_builder.add_node(\"sub_graph\", _sub_builder.compile())\n",
    "\n",
    "\n",
    "_builder.add_edge(START, \"node_m1\")\n",
    "_builder.add_edge(\"node_m1\", \"node_r1\")\n",
    "_builder.add_edge(\"node_m1\", \"sub_graph\")\n",
    "_builder.add_edge(\"sub_graph\", \"node_m2\")\n",
    "_builder.add_edge(\"node_r1\", \"node_m2\")\n",
    "_builder.add_edge(\"node_m2\", END)\n",
    "\n",
    "_graph = _builder.compile()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/jpeg": "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0V2QFXNoFO44xVV0IHTtrHVCmcdeD4wSRw/nN3mH5nlWNQWd1fSWGXqQAukNJJHGxo1LpHNLWNA8Jc4D+1ZrG/jabtcJjFMU1Qyrp4p4zrHIwPafmI1C5V1bXR9TrZSUmu9yELItR391oH/BdpYpuvm5AiIoBERAREQEREBERAREQEREBERAREQEREBERAREQdK82mnvtqqrfVBxgqGFjiw7rm+BzT3nA6EHvEAqMtN/kpamO03t8cF013YZvgRVze8+P/e0HbR87Trzt3XGwLq3G2Ul3pH0tbTRVdO/TWOZgc3Ucx498eHvLLTXF2ZVh6JvUm59D7syvVyq7hX7P8bra6rlfPUVM9rhfJLI4lznucW6kkkkk85K656GzZOefZvix8tpg+6rAMChp+FDeb1b4gNBFHXOla3yCXf08g4BOsmo8ar9+mh90r5lnOFflP8AsujWmbDYLbi9oprVZ6Cmtdtpm7sFJSRCOKIak6NaOA4knh4V31V+smo8ar9+mh90nWTUeNV+/TQ+6Ti7P3/KS6Na0Isrw+3Xa+ZRnNvqspvAp7NdYaOk5OWHe5N1BSznf/FnjvzP8HDd4d82zrJqPGq/fpofdJxdn7/lJdGt85fsqw3aBVU9Tk2K2fIKinYY4ZblRRzujaTqWtLgdBrx0UD+DZsn007G+LaeDqRB91WDrJqPGq/fpofdJ1k1HjTfj/50Puk4uz9/ykujWYvs/wAO2YU1fNj9gs+L084a+rkoaaOmY8M13S8tAB3d53PzalIg7MrjS1RjcyxUUgmg5Rpa6snHwZAD/wBE3naT8N2jho1rXP5abArWyeOesdV3iaMgsdc6l87WkHUERk7gIPHUN15uPAKxpnUWfMm+de7+foaIwERFroEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQZ9s4LTnm1bQkkX+m117x6k0HznvaeDyd86Cs+2ca9fm1XUt/1/TaboGv+qaDn046+Xjzd7RaCgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgz3ZsAM92sds12uQU2oA4t/emg4Hh/b3+cLQlnmzbTr92saEk9cFNr2un/VNB/itDQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEVeyDJ56Gtb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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import display,Image\n",
    "\n",
    "display(Image(_graph.get_graph(xray=1).draw_mermaid_png()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'foo': ['m1', 'r1', 'm1', 'l1', 'l2', 'm2']}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_graph.invoke({\"foo\":[]})"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py310",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
